export interface ServerData<T = any> {
  isOk: boolean
  isFail: boolean
  msg?: string
  message?: string
  failCode?: 'err_date'
  data: T
}

/* 用户 */
export interface ServerUserInfo {
  indexShowType: number
  loginSession?: string
  openId?: string
  platformTelephone: string
  sellerTelephone: string
  serviceTelephoneType: number
  token: string
  status: string
}

export interface UserIdentity {
  SupplierList: any
  allBalance: number
  isSeller: boolean
  isSite: boolean
  isSupplier: boolean
  platformSellerType: number
  sellerId: number
  sellerSid: number
  sellerType: number
  siteId: number
  unWithdrawBalance: number
  userId: number
  isAutoUpgrade?: boolean
  sonSellerNum?: number
  isCanHaveSon?: boolean
  withdrawBalance: number
  bytedanceNo?: string
  repayment?: number
  commonBalance?: number
  showModule: { isShow: boolean; image: string; url: string }
}

export interface GradeLevel {
  gradeLevelInfo: LevelInfo[]
  thisindex?: number
  percentage?: number
  sonSellerNum: number
  sellerGroupId: number
}

export interface LevelInfo {
  id: number
  name: string
  rule_num: number
}

export interface WxUserInfo {
  nickName: string
  avatarUrl: string
  gender: number
  country: string
  province: string
  city: string
  language: string
}

export interface LocalUser {
  token: string
  userInfo: WxUserInfo & ServerUserInfo
}

/* 首页banner */
export interface Banner {
  img: string
  link: string
  title: string
  type: number
}

/* 首页主菜单 */
export interface IndexCategory {
  id: number
  img: string
  link: string
  link_type: number
  name: string
}

/* 首页自定义数据 */
export interface IndexCustom {
  pop_url: any
  arr: IndexSaleModule[]
  pgimg: string
  pop_goods: { name: string; price: string }
  pop_img: string
  pop_type: number
  url: string
}

export interface IndexSaleModule {
  firstProduct: IndexSaleModuleItem
  name: string
  products: IndexSaleModuleItem[]
  type: string
}

export interface IndexSaleModuleItem {
  id: string
  img: string
  name: string
  orderno: number
  salePercent: string
  price: number
  sell_begin_mills: number
  sell_end_mills: number
  status: 'selling' | 'beginning' | 'ending' | 'sellout' // selling 开始  // beginning 未开始  // ending 已结束  //  selleout 售罄
  url: string
}

/* 首页人气推荐 */
export interface ServerRecommendGoods extends ServerData {
  goods: RecommendGood[]
}

export interface RecommendGood {
  goods_id: number
  id: number
  img: string
  market_price: number
  name: string
  price: number
  sid: number
  site_name: string
  type: number
  url: string
}

/* 首页下方产品 */
export interface IndexGoods {
  indexShowType: number
  list: Good[]
}

export interface Good {
  add_date: string
  category: number
  category_name: string
  city_id: number
  id: number
  img: string
  is_top: number
  market_price: number
  name: string
  order_no: number
  price: number
  set_top_time: string
  show_citys: string
  tempcolumn: number
  temprownumber: number
  url: string
  uuid: string
  view_count: number
  salesVolume: number
  cityName: number
  serviceLabels: { url: string; name: string }[]
  can_zero_buy?: 0 | 1
}

/* 购物车列表 */
export interface ShopList {
  gid: any
  shopName: string
  shopId: number
  goods: ShopGood[]
  orderNo: string
  sum?: number
  isSeller?: boolean
  checked?: boolean
}

export interface ShopGood {
  id: number
  topId: number
  gid: number
  img: string
  topTitle: string
  title: string
  num: number
  price: number
  stock: number
  status: number
  minBuy: number
  checked?: boolean
  labelList?: LabelList[]
  buy_num_min?: number
  buy_num_max?: number
}

export interface LabelList {
  id: number
  name: string
  minBuy: number
  stock: number
  price: number
  brokerage: number
  sellerBrokerage: number
  no: string
  status: number
  buy_num_min?: number
  buy_num_max?: number
  main_img: string
}

/* 热门城市 */
export interface HotCity {
  area_name: string
  region_id: number
  name: string
}

export interface AllCity {
  title: string
  key: string
  items: HotCity[]
}

/* 热门搜索词 */
export interface ServerHotKey extends ServerData {
  hotKeywordsList: HotKey[]
}

export interface HotKey {
  name: string
}

/* 分类标签 */
export interface SubCategory {
  depth?: number
  id: number
  img: string
  link: string
  link_type: number
  name: string
}

/* 抢购产品 */
export interface LimitGood {
  DT_RowId: number
  category_id: number
  category_name: string
  category_path: string
  can_buy?: number
  city: string
  id: number
  img: string
  is_subscribe?: number
  is_require_buyer_address: number
  is_require_buyer_idcard: number
  is_require_buyer_name: number
  is_require_buyer_phone: number
  location: string
  market_price: number
  name: string
  no: string
  pid: number
  poster_background: string
  price: number
  score: number
  sell_begin: number
  sell_begin_diff: number
  set_top_time: number
  show_citys: string
  status: string
  tempcolumn: number
  temprownumber: number
  uuid: string
  progress: number
  sell_begin_timestamp: number
  sell_end_timestamp: number
  can_zero_buy: 0 | 1
}

export interface LimitGoodDetail {
  address?: string
  area_id?: number
  attachment?: string
  booking_day_end?: number
  booking_time_end?: string
  category?: string
  brokerage?: number
  seller_price?: number
  first_brokerage?: number
  sale_percent?: string
  city_id?: number
  description?: string
  effective_begin?: string
  effective_begin_show?: string
  effective_end?: string
  effective_end_show?: string
  id: number
  isSelf: number
  images: {
    add_date: string
    file_type: number
    foreign_id: number
    id: number
    old_name: string
    url: string
  }[]
  is_allow_refund?: number
  is_need_reserve?: number
  is_require_buyer_address?: number
  is_require_buyer_idcard?: number
  is_require_buyer_name?: number
  is_require_buyer_phone?: number
  keywords?: string
  label?: string
  link_phone?: string
  live_room_id?: number
  location: string
  market_price?: number
  max_buy?: number
  min_buy?: string
  mp3: string
  name?: string
  meals?: {
    productName: string
    amount: number
    id: number
    check?: boolean
  }[]
  no?: string
  notice?: string
  open_meal?: number
  pay_notice_mark?: string
  pid: number
  poster_background?: string
  price?: number
  province_id?: number
  qianggou_related_key?: string
  qq_video_id?: string
  sale_model?: string
  second_seller_price?: string
  sell_begin?: string
  sell_begin_mills?: number
  sell_begin_show?: string
  sell_end?: string
  sell_end_mills?: number
  sell_end_show?: string
  sid?: number
  status?: string
  store: number
  supplier_id?: number
  supplier_price?: number
  uuid: string
  valid_date_days?: string
  valid_date_limit_end?: string
  valid_date_type?: number
  slogan: string
  salesVolume: number
  serviceLabels: { url: string; name: string }[]
  good_cancel_order_time: number
  is_show_customer_service: number
  is_pub: number
  isSeller?: number
  detail_type: 0 | 1 // 0 小程序详情页  1  H5详情页
  longitude?: number
  latitude?: number
  can_zero_buy: 0 | 1
}

export interface ServerLimitGoodsDetail {
  goods: LimitGoodDetail
  siteServiceTelephone: string
  is_subscribe?: number
  isSelf?: number
  siteServiceWx?: string
}

// 并发抢购详情
export interface ServerNewLimitGoodsDetail {
  address: string
  area_id: number
  attachment: string
  booking_day_end: number
  booking_time_end: string
  can_zero_buy: number
  category: number
  city_id: number
  description: string
  detail_type: number
  effective_begin: number
  effective_end: number
  effective_end_show: string
  effective_begin_show: string
  good_cancel_order_time: number
  goods_labels: string
  id: number
  images: {
    add_date: string
    file_type: number
    foreign_id: number
    id: number
    old_name: string
    url: string
  }[]
  img?: string
  is_allow_refund: number
  is_multi: number
  is_need_reserve: number
  is_pub: number
  is_require_buyer_address: number
  is_require_buyer_idcard: number
  is_show_customer_service?: number
  is_require_buyer_name: number
  is_require_buyer_phone: number
  is_self_mention: number
  is_show_mark: number
  isSelf: number
  keywords: string
  label: string
  latitude: number
  location?: string
  link_phone: string
  live_room_id: number
  longitude: number
  market_price: number
  max_buy: number
  meals?: {
    productName: string
    amount: number
    id: number
    check?: boolean
  }[]
  meal_valid_num: number
  meal_valid_type: number
  min_buy: number
  mp3: string
  name: string
  no: string
  notice: string
  open_meal: number
  pay_notice_mark: string
  pid: number
  poster_background: string
  price: number
  province_id: number
  qianggou_related_key: string
  qq_video_id: string
  reserve_date_style: number
  sale_model: number
  second_seller_price: number
  sell_begin: number
  sell_end: number
  sell_begin_show: string
  sell_end_show: string
  seller_brokerage: number
  seller_price: number
  serviceLabels: { url: string; name: string; image: string }[]
  sid: number
  siteServiceTelephone: string
  siteServiceWx: string
  slogan: string
  store: number
  status: string
  supplier_id: number
  supplier_price: number
  surplus_stock: number
  total_stock: number
  uuid: string
  valid_date_days: number
  valid_date_limit_end: string
  valid_date_type: number
  virtual_sales: number
  otherGood?: NewOtherGood[]
}

export interface NewOtherGood {
  id: number
  name: string
  price: string
  uuid: string
}

export interface UpDataDetail {
  brokerage: number
  first_brokerage?: number
  id: number
  isSeller: number
  market_price: number
  pid: number
  price: number
  sale_percent: string
  salesVolume: number
  second_seller_price: number
  sell_begin: string
  sell_end: string
  seller_brokerage: number
  seller_price: number
  sid: number
  store: number
  supplier_id: number
  supplier_price: number
  surplus_stock: number
  total_stock: number
  virtual_sales: number
  status: string
  is_subscribe: number
}

export interface LimitOtherGood {
  address: string
  booking_day_end: number
  booking_time_end: string
  buy_limit: number
  category_id: number
  category_name: string
  category_path: string
  city: string
  custom_item_config: string
  exchange_max_integral: number
  exchange_money: number
  exchange_type: number
  goods_labels: string
  id: number
  img: string
  is_allow_refund: number
  is_custom_item: number
  is_immediate_pay_seller: number
  is_multi: number
  is_poster_bind_seller: number
  is_recommend_index: number
  is_require_buyer_address: number
  is_require_buyer_idcard: number
  is_require_buyer_name: number
  is_require_buyer_phone: number
  is_send_sms: number
  is_send_weixin: number
  is_synchronization: number
  library_id: string
  link_phone: string
  location: string
  market_price: number
  mp3: string
  name: string
  no: string
  open_meal: number
  order_limit: number
  order_limit_config: string
  pay_notice_mark: string
  pid: number
  plugin_id: number
  plugin_product_code: string
  plugin_scenic_id: string
  poster_background: string
  poster_type: number
  price: number
  qianggou_related_key: string
  qq_video_id: string
  score: string
  second_seller_price: number
  sell_begin: string
  seller_brokerage: number
  set_top_time: string
  show_citys: string
  sms_content: string
  sms_service_phone: string
  status: string
  uuid: string
  valid_date_days: string
  valid_date_limit_end: string
  valid_date_type: number
}

export interface SiteInfo {
  address: string
  logo: string
  name: string
  service_tel: string
  uuid: string
}

/* 城市定位 */
export interface CityLocation {
  area_name: string
  region_id: number
}

/* 平台设置 */
export interface PlatformSet {
  certificationUrl: any
  applicationOpenVip: any
  is_show_sales_volume?: any
  isShowServicePhone: 1 | 0
  codeWay?: 1 | 0
  platformServicePhone: string
  platformName: string
  platformSellerType: 1 | 0
  poster_show_phone: 0 | 1
  payVersion: 1 | 0
  hideWc?: number
  sellerRegType?: number
  is_show_rank?: number
  checkStyleMini?: 0 | 1 | 2 | 3
  platformLogo: string
  indexNavigation?: any
  authorizationType: number
  openSaleMessageSubscribe?: number
  saleMessageTemplateId?: any
  status_mp?: number
  isHideNavigation?: number
  isSellerPermanentLock?: number
  movieDay?: number
  payMethod: number
}

/* 公众号设置 */
export interface SubscriptionType {
  img: string
  type: number
  title: string
  sub_title: string
  show_place: string
  url?: string
}

/* 店铺设置 */
export interface SiteSet {
  siteLogo: any
  guideCustomerFixedPhone: string
  guideCustomerImg: string
  guideCustomerTitle: string
  guideCustomerSubhead: string
  guideCustomerWeixin: string
  guideCustomerPhone: string
  guideCustomerTips?: string
}

/* 推荐产品列表 */
export interface RecommendPageGood {
  add_date: string
  add_ip: string
  add_user: string
  goods_id: number
  goods_uuid: string
  id: number
  img: string
  is_del: number
  market_price: number
  name: string
  order_no: number
  pid: number
  price: number
  show_citys: string
  sid: number
  site_name: string
  tempcolumn: number
  temprownumber: number
  type: number
  update_date: string
  update_ip: string
  update_user: string
  url: string
  uuid: string
}

/* 分类列表 */
export interface CategoryListPageGood {
  add_date: string
  areaId: string
  category_name: string
  city: string
  city_id: number
  isAll?: boolean
  isActive?: boolean
  categoryIdOld?: number
  depth?: number
  id: number
  img: string
  market_price: number
  name: string
  price: number
  tempcolumn: number
  temprownumber: number
  url: string
  uuid: string
}

/* 海报 */
export interface Poster {
  subTitle?: any
  imgCustomizeKey?: any
  imgCustomizeKeytrue?: any
  imgCustomize?: any
  sellerPostName: string
  sellerPhone: string
  posterType: '0' | '1'
  name: string
  siteLogo: string
  goodsBackground?: string
  wxVCodeImg: string
  sellerSlogan: string
  shortName: string
  effectiveDate: string
  goods?: { price: string; name: string }[]
}

/* 地址列表 */
export interface Address {
  address: string
  add: string
  name: string
  phone: string
  id?: number
  default?: boolean | number
  addary?: any
  addcode?: any
  checked?: boolean
}

/* 自提点 */
export interface Access {
  id: number
  address: string
  name: string
  phone?: string
  distance?: string
}

/* 单品下单 */
export interface OrderInfo {
  give: boolean
  price: number
  stock: number
  payToken?: string
  orderNo?: string
  isred?: number
  isgrade?: number
  id?: number
  topId?: number
  img?: string
  minBuy?: number
  title?: string
  gname?: string
  num?: number
  isMail?: boolean
  prop?: number
  integralDeduction?: number
  freight?: number
  self?: Access | object
  selfList?: number[]
  ifNull?: boolean
  userBalance?: number
  buy_num_max?: number
  buy_num_min?: number
  custom_config?: any
  isOpenCredit?: number
  creditAmount?: number
}

/* 购物车下单自提商品 */
export interface CarSelf {
  goods?: OrderInfo[] | false
  id?: number
  name?: string
  address?: string
  freight?: number
}

/* 购物车下单邮寄商品 */
export interface CarRemit {
  freight?: number
  goods?: OrderInfo[] | false
  id?: number
  name?: string
  address?: string
}

/* 购物车下单 */
export interface OrderCar {
  freight: number
  totalFee?: number
  payToken?: string
  orderNo?: string
  userBalance?: number
  isOpenCredit?: number
  creditAmount?: number
  remit?: CarRemit | false
  self?: CarSelf | false
}

/* 钱包 */
export interface Wallet {
  allBalance: number
  seller?: any
  unWithdrawBalance: number
  withdrawBalance: number
  sellerWithdrawMinimumAmount?: number
  sellerWithdrawRate?: number
}

export interface PayParam {
  appId: string
  nonceStr: string
  package: string
  paySign: string
  signType: "MD5" | "HMAC-SHA256"
  timeStamp: string
}

export interface CerEditLog {
  subject: string
  add_date: string
  money: number
  id: number
  type: 1 | 2 | 3
}

export interface RecordItem {
  account_id: number
  add_date: string
  add_ip: string
  add_user: string
  balance: number
  id: number
  out_trade_no: string
  remark: string
  subject: string
  tempcolumn: number
  temprownumber: number
  total_amount: number
  trasaction_no: string
  type: number
  uuid: string
  real_name?: string
  alipay_no?: string
  pay_source_name: string
}

export interface OrderItem {
  canRefund: any
  buy_again_goods_uuid: any
  appointment_msg: any
  is_self_meal: any
  childNum: any
  count_date: any
  after_sale_str: any
  blank_page: any
  is_invoice: any
  is_open_invoice: any
  group_activity_id: any
  category: any
  can_user_evaluation: any
  after_sale_status: any
  is_after_sale?: any
  dealStatus: any
  buy_again?: boolean
  add_date: string
  add_ip: string
  add_user: string
  api_third_supplier_order_num: string
  appointmentId: string
  buy_amount: number
  buy_date: string
  buy_date_range: string
  current_exchange_type: number
  custom_item_detail: string
  delivery_address: string
  delivery_area_id: string
  delivery_city_id: string
  delivery_province_id: string
  effective_begin: string
  effective_end: string
  express_com: string
  express_fee: string
  express_no: string
  first_seller_fee: string
  goods_id: number
  goods_name: string
  goods_plugin_code: string
  goods_plugin_id: number
  goods_seller_brokerage: number
  goods_seller_price: number
  goods_supplier_price: number
  group_id: string
  hongbao_amount: number
  hongbao_id: string
  id: number
  identity_num: string
  integral_deduction: number
  is_allow_refund: number
  is_immediate_pay_seller_status: number
  is_infinite: number
  is_meal: number
  is_need_reserve: number
  is_rebate: number
  is_send_weixin: number
  is_ticket: number
  linkman: string
  name: string
  nick_name: string
  offpay_date: string
  order_num: string
  order_status: number
  order_type: number
  pay_type: number
  phone: string
  pid: number
  platform_account_status: number
  platform_service_charge_fee: number
  product_name: string
  rate_fee: number
  re_send_sms_seller_count: number
  reciver_area: string
  reciver_city: string
  reciver_province: string
  refund_no: string
  refund_trade_no: string
  remark: string
  reserve_status: number
  second_seller_fee: string
  seller_fee: number
  seller_id: number
  seller_price: string
  sid: number
  site_account_status: number
  site_enchashment_id: string
  site_fee: number
  site_pay_status: number
  status: number
  status_name: string
  supplier_account_status: number
  supplier_fee: number
  supplier_id: number
  tempcolumn: number
  temprownumber: number
  third_supplier_order_num: string
  ticket_library_id: string
  total_fee: number
  trade_no: string
  type: number
  tips_msg?: any
  unit_fee: number
  update_date: string
  update_ip: string
  update_user: string
  use_integral: number
  user_id: number
  uuid: string
  weixin_prepay_id: string
  memo: string
  default_img_url?: string
  pay_source_img?: string
  estimated_earnings?: string
  is_ticket_name?: string
  can_trans?: number
  site_name: string

}

export interface WordList {
  title: string
  id: number
  update_date: string
}

export interface WordInfo {
  name: string
  type: string
  file_size: number
  url: string
  resource_id: number
}

export interface OrderDetail {
  receiver?: any
  add_date: string
  add_ip: string
  add_user: string
  address: string
  assembling_place: string
  api_third_supplier_order_num: string
  buy_amount: number
  buy_date: string
  buy_date_range: string
  current_exchange_type: number
  custom_item_detail: string
  delivery_address: string
  delivery_area_id: string
  delivery_city_id: string
  default_img_url?: string
  delivery_province_id: string
  defined_img: string
  express_com: string
  express_fee: string
  express_no: string
  first_seller_fee: string
  goods_id: number
  goods_plugin_code: string
  goods_plugin_id: number
  goods_seller_brokerage: number
  goods_seller_price: number
  goods_supplier_price: number
  goods_type: number
  group_id: number
  category: number
  hongbao_amount: number
  hongbao_id: string
  id: number
  identity_num: string
  integral_deduction: number
  is_allow_refund: number
  is_immediate_pay_seller_status: number
  is_infinite: number
  is_meal: number
  is_need_reserve: number
  is_rebate: number
  is_send_weixin: number
  is_ticket: number
  sale_style: number
  linkman: string
  name: string
  face_photo: string
  message?: string
  nick_name: string
  offpay_date: string
  order_num: string
  order_status: number
  order_type: number
  pay_notice_mark: string
  pay_type: number
  is_can_refund: boolean
  phone: string
  pid: number
  platform_account_status: number
  platform_service_charge_fee: number
  product_name: string
  push_key: string
  push_result: string
  rate_fee: number
  re_send_sms_seller_count: number
  reciver_area: string
  reciver_city: string
  reciver_province: string
  refund_no: string
  refund_trade_no: string
  remark: string
  refuse_refund_reason: string
  reserve_status: number
  second_seller_fee: string
  seller_fee: number
  seller_id: number
  seller_price: string
  sid: number
  site_account_status: number
  site_enchashment_id: string
  site_fee: number
  site_pay_status: number
  status: string
  supplier_account_status: number
  supplier_fee: number
  supplier_id: number
  third_supplier_order_num: string
  ticket_library_id: string
  tickets_check_status?: number
  total_fee: number
  trade_no: string
  valid_appointed_day: string
  unit_fee: number
  update_date: string
  update_ip: string
  update_user: string
  use_integral: number
  user_id: number
  uuid: string
  weixin_prepay_id: string
  site_remark_for_customer?: string
  goods_group: string
  goodsType: 'limit' | 'ticket' | 'hotel' | 'tours-line' | 'product'
  guuid: string
  refund_type: number
  useAccountPay?: number
  validTimeMsg?: string
  meals?: {
    buy_amount: number
    company: string
    product_name: string
    verify_amount: number
  }[]
  qrCode?: string
  pay_source_name?: string
  useAccountPay_name?: string
  coupon_nums?: string[]
}

export interface MDetail {
  buyAmount: number
  tickets: any
  movie: any
  accountItems: any
  phone: string
  orderLog: any
  orderNum: string
  unitFee: number
  productName: string
  startDate: string
  status: number
}

export interface TicketItem {
  conductor: string
  export_id: string
  goods_id: number
  id: number
  check_num: number
  can_check_num?: number
  used_check_num?: number
  isUse: string
  is_use: number
  order_id: number
  order_num: string
  pid: number
  reserve_id: string
  reserve_no: string
  sid: number
  source_type: string
  status: number
  supplier_id: number
  ticket: string
  type: number
  use_date: string
  valid_date_end: string
  valid_date_start: string
  verification_srouce: string
  code_type: number
  product_name?: number
}

/* 红包 */
export interface redbagItem {
  add_date: string
  add_ip: string
  add_user: string
  amount: number
  bid: string
  expired_date: string
  id: number
  memo: string
  nick_name: string
  parent_id: number
  pid: number
  status: number
  tempcolumn: number
  temprownumber: number
  update_date: string
  update_ip: string
  update_user: string
  user_id: number
  uuid: string
}

export interface AlipayType {
  userAlipay?: UserAlipay
  alipay_no?: string
  true_name?: string
}

export interface UserAlipay {
  alipay_no?: string
  true_name?: string
}

/* 分销商资料 */
export interface SellerInfo {
  address: string
  company: string
  delivery_area: string
  delivery_city: string
  delivery_province: string
  id: number
  is_show_phone: number
  phone: string
  poster_name: string
  qq: string
  rate: number
  real_name: string
  slogan: string
  wx_no?: string
  type: number
}

/* 个人信息 */
export interface PersonInfo {
  add_date: string
  add_ip: string
  add_user: string
  address: string
  bind_seller_id: 93870
  city: string
  country: string
  delivery_address: string
  delivery_area: string
  delivery_area_id: number
  delivery_city: string
  delivery_city_id: string
  delivery_province: string
  delivery_province_id: number
  gender: number
  id: number
  identify_num: string
  integral: number
  last_login_date: string
  login_count: number
  login_session: string
  nick_name: string
  phone: string
  photo: string
  pid: number
  province: string
  real_name: string
  sid: number
  source_sid: number
  supplier_id: number
  update_date: string
  update_ip: string
  update_user: string
  uuid: string
  wechat_open_id: string
  birthday?: string
  company?: string
}

export interface IntegralItem {
  add_date: string
  config_name: string
  config_no: string
  score: number
  tempcolumn: number
  temprownumber: number
}

/* 分销订单 */
export interface DistributorOrder {
  add_date: string
  add_ip: string
  add_user: string
  api_third_supplier_order_num: string
  buy_amount: number
  buy_date: string
  buy_date_range: string
  cancel_order_time: string
  current_exchange_type: number
  custom_item_detail: string
  delivery_address: string
  delivery_area_id: number
  delivery_city_id: number
  delivery_province_id: number
  express_com: string
  express_fee: string
  express_no: string
  first_seller_fee: string
  goods_id: number
  goods_name: string
  goods_plugin_code: string
  goods_plugin_id: number
  goods_seller_brokerage: number
  goods_seller_price: number
  goods_supplier_price: number
  group_id: number
  hongbao_amount: number
  hongbao_id: number
  id: number
  identity_num: string
  integral_deduction: number
  isSendSms: number
  is_immediate_pay_seller_status: number
  is_infinite: number
  is_meal: number
  is_need_reserve: number
  is_order_finish: number
  is_rebate: number
  is_ticket: number
  linkman: string
  name: string
  offpay_date: string
  order_num: string
  order_type: number
  pay_type: number
  phone: string
  pid: number
  platform_account_status: number
  platform_service_charge_fee: number
  product_name: string
  rate_fee: number
  re_send_sms_seller_count: number
  reciver_area: string
  reciver_city: string
  reciver_province: string
  refund_no: string
  refund_trade_no: string
  remark: string
  reserve_status: number
  second_seller_fee: string
  seller_fee: number
  seller_id: number
  seller_price: number
  sid: number
  site_account_status: number
  site_enchashment_id: number
  site_fee: number
  site_pay_status: number
  status: number
  status_name: string
  supplier_account_status: number
  supplier_fee: number
  supplier_id: number
  tempcolumn: number
  temprownumber: number
  third_supplier_order_num: string
  ticket_library_id: string
  total_fee: number
  trade_no: string
  type: number
  unit_fee: number
  update_date: string
  update_ip: string
  update_user: string
  use_integral: number
  user_id: number
  uuid: string
  weixin_prepay_id: string
  ticketsCheckStatus: string
  site_name: string
}

export interface DistributorOrderStatistics {
  allPayCount: number
  cancelPayCount: number
  finishCount: number
  offPayCount: number
  toBeUseCount: number
  onPayCount: number
}

export interface RebateInfo {
  add_date: string
  add_ip: string
  add_user: string
  amount: number
  enchashment_id: string
  id: number
  isStatus: string
  order_id: number
  pid: number
  seller_account_status: number
  seller_id: number
  sid: number
  status: number
  uuid: string
}

/* 我的分销商 */
export interface MySellerItem {
  login_count: number
  nick_name: string
  tempcolumn: number
  temprownumber: number
}

export interface MySeller {
  list: MySellerItem[]
  totalCount: number
}

export interface MySellerListItem {
  account_id: number
  api_id: number
  delivery_area: string
  delivery_city: string
  delivery_province: string
  id: number
  is_show_phone: number
  off_order: number
  phone: string
  pid: number
  poster_name: string
  rate: number
  real_name: string
  rebate_all: string
  rebate_range: string
  self_all: string
  self_range: string
  slogan: string
  source_user_id: number
  team_all: string
  team_count: number
  team_count_range: string
  team_range: string
  team_rebate_all: string
  team_rebate_range: string
  tempcolumn: number
  temprownumber: number
}

/* 核销 */
export interface CheckTicketItem {
  id: number
  is_use: number
  ticket: string
  valid_date_end: string
  valid_date_start: string
  msg: string
}

export interface CheckItem {
  goods_id: number
  goods_name: string
  id: number
  pid: number
  ticket_list: CheckTicketItem[]
}

export interface TicketRecordList {
  firstPage: boolean
  lastPage: boolean
  list: TicketRecordListItem[]
  pageNumber: number
  pageSize: number
  totalPage: number
  totalRow: number
}

export interface TicketRecordListItem {
  buy_amount: number
  company: string
  gid: number
  gname: string
  linkman: string
  phone: string
  tempcolumn: number
  temprownumber: number
  tickets: string
  check_num: number
  total_fee: string
  use_date: string
  identity_num: string
}

/* 商家平台 */
export interface SiteOrderLog {
  add_date: string
  code: string
  id: number
  message: string
  order_id: string
  pay_type: string
  pid: string
  status: string
}

/* 预约 */
export interface AppointmentItem {
  allow_per_number: number
  appointment_date_begin: string
  appointment_date_end: string
  appointment_time_begin: string
  appointment_time_end: string
  continuous_type: 1 | 2 // 1 为单天  2 为多天
  goods_type: string
  id: number
  intro: string
  is_require_buyer_idcard: number
  is_require_buyer_name: number
  is_require_buyer_phone: number
  name: string
  note: string
  pay_type: 1 | 2  // 1线上  2线下
  show_store_type: string
  sid: 1
  uuid: string
}

export interface ReverseItem {
  add_date: string
  add_ip: string
  add_user: string
  deal_status: number
  fee: number
  id: number
  identity_num: string
  linkman: string
  name: string
  num: number
  orderId: number
  pay_type: number
  phone: string
  remark: string
  reserve_date: string
  reserve_date_end: string
  reserve_date_range: string
  reserve_goods_id: number
  reserve_no: string
  status: number
  tempcolumn: number
  temprownumber: number
  ticket_ids: string
  ticket_order_ids: string
  tickets: string
  total_num: number
  user_id: number
  uuid: string
}

export interface AppointmentDetail {
  days: number
  fee: number
  identity_num: string
  linkman: string
  name: string
  num: number
  numStr: string
  orderId: number
  pay_type: number
  phone: string
  remark: string
  remarkStr: string
  reserve_date: string
  reserve_date_range: string
  reserve_goods_id: number
  status: number
  statusStr: string
  tickets: string
  total_num: number
  dataRange: string
}

/* 红包 */
export interface RedBagSetting {
  memberGoods: string
  memberHongbao: string
  moduleSet: {
    hongbaoImg: string
    isHongbao: number
    isShowServicePhone: number
    is_integral: number
    platformSellerType: number
    platformServicePhone: string
  }
}

/* 订单确认 */
export interface OrderGoodDetail {
  goods: OrderGoodItem
  integral: {
    can: boolean
    exchangeMaxIntegral: number
    max: number
    prop: number
    score: number
  }
}

export interface OrderGoodItem {
  category: number
  custom_item_config: string
  effective_begin: string
  effective_end: string
  exchange_max_integral: number
  exchange_money: number
  exchange_type: number
  id: number
  is_custom_item: number
  is_multi: number
  is_require_buyer_address: number
  is_require_buyer_idcard: number
  is_require_buyer_upload_file?: number
  is_open?: number
  name: string
  open_meal: number
  order_limit: number
  is_show_mark: number
  userBalance: number
  order_limit_config: {
    account: { day: string; count: string; orderCount: string }
    idcard: { day: string; count: string; orderCount: string }
    order: { min: string; max: string }
    phone: { day: string; count: string; orderCount: string }
    type: string
  }
  price: number
  type: number
  uuid: string
  group_product: OrderItem[]
  product_name?: string
  valid_date_type?: number
  valid_date_days?: number
  valid_date_limit_end?: string
  buy_num_min?: number
  buy_num_max?: number
  date_type?: number
  tips_msg?: any
  assembling_place_list?: PlaceList[]
  validDateMsg?: string
  travel_date_style?: number
  EffectiveDateStr?: string
  can_use_conversion_code?: number
}

export interface PlaceList {
  assembling_place: string
}

export interface DefaultInfo {
  address: string
  delivery_address: string
  delivery_area: string
  delivery_area_id: number
  delivery_city: string
  delivery_city_id: number
  delivery_province: string
  delivery_province_id: number
  identify_num: string
  name: string
  phone: string
}

export interface GetFeeDataType {
  payToken: string
  hbAmount: number
  integralDeduction: number
  maxAmount: number
  num: number
  maxJf?: number
  proJf?: number
  userBalance?: number
  totalFee: number
  isOpenCredit?: number
  creditAmount?: number
  discounts_money?: number
  couponIsuseId?: number | string
  platform_pay_type: number
}

export interface ServerScenicDetail {
  goods: SecnicGoodDetail
  siteServiceWx?: string
  siteServiceTelephone: string
}

export interface SecnicGoodDetail {
  address: string
  area_id?: number
  city_id?: number
  description?: string
  goodsList: ScenicGood[]
  is_group_order?: 0 | 1 // 0是正常单  1 组合下单
  id: number
  images: {
    add_date: string
    file_type: number
    foreign_id: number
    id: number
    old_name: string
    url: string
  }[]
  img?: string
  isSeller?: boolean
  link_phone?: string
  live_room_id?: number
  location: string
  longitude?: number
  latitude?: number
  hotel_type?: number
  mp3?: string
  name: string
  no?: string
  notice?: string
  pay_notice_mark?: string
  province_id?: number
  qq_video_id?: string
  sid?: number
  slogan?: string
  uuid: string
  serviceLabels: { url: string; name: string; image: string }[]
  salesVolume: number
  departureCityStr?: string
  destinationCityStr?: string
  is_show_customer_service: number
  is_sale: number
  status?: string
  price: number
  market_price: number
  detail_type: 0 | 1 // 0 小程序详情页  1  H5详情页
  scenic_type?: number
}

export interface SecnicDetail {
  category?: any
  sub_title?: any
  goods_lightspot?: any
  share_volume?: any
  meal_details?: any
  address: string
  area_id?: number
  city_id?: number
  description?: string
  is_group_order?: 0 | 1 // 0是正常单  1 组合下单
  id: number
  images: {
    add_date: string
    file_type: number
    foreign_id: number
    id: number
    old_name: string
    url: string
  }[]
  img?: string
  link_phone?: string
  live_room_id?: number
  location: string
  longitude?: number
  latitude?: number
  hotel_type?: number
  mp3?: string
  name: string
  no?: string
  notice?: string
  pay_notice_mark?: string
  province_id?: number
  qq_video_id?: string
  sid?: number
  slogan?: string
  uuid: string
  serviceLabels: { url: string; name: string; image: string }[]
  salesVolume: number
  departureCityStr?: string
  destinationCityStr?: string
  is_show_customer_service: number
  is_sale?: number
  isSupportGroup?: boolean
  status?: string
  sale_style?: number
  price: number
  market_price: number
  scenic_type?: number
}

export interface ScenicInfo {
  isGetTicketWay?: any
  couponLabel?: any
  saleStyleGoodsList?: any
  productStorelist: any
  goodsList: ScenicGood[]
  id?: number
  isSeller: number
  pid?: number
  sid?: number
  uuid?: string
  is_sale?: number
  live_room_id?: string
  is_pub?: number
  salesVolume?: number
}

export interface ScenicGood {
  can_buy_team_order?: any
  discount?: any
  surplus_stock?: any
  is_store_show?: any
  ticketWayStr?: any
  isGetTicketWay?: any
  is_open_team_reserve?: number
  sell_end_timestamp?: number
  sale_style?: number
  sale_percent?: number
  add_date: string
  add_ip: string
  img: string
  add_user: string
  address: string
  area_id: number
  attachment: string
  bookingEndShow: string
  booking_day_end: number
  booking_time_end: string
  brokerage: number
  buy_limit: number
  category: number
  category_id: number
  category_path: string
  city_id: number
  custom_item_config: string
  description: string
  effective_begin: string
  effective_end: string
  exchange_max_integral: string
  exchange_money: number
  exchange_type: number
  first_brokerage: number
  good_cancel_order_time: string
  goods_labels: string
  id: number
  is_allow_refund: number
  is_custom_item: number
  is_disable: number
  is_good_order_finish: number
  is_immediate_pay_seller: number
  is_multi: number
  is_need_reserve: number
  is_poster_bind_seller: number
  is_pub: number
  is_recommend_index: number
  is_require_buyer_address: number
  is_require_buyer_idcard: number
  is_require_buyer_name: number
  is_require_buyer_phone: number
  is_send_sms: number
  is_send_weixin: number
  is_show: number
  is_show_mark: number
  is_synchronization: number
  is_subscribe: number
  is_top: number
  keywords: string
  label: string
  library_id: number
  link_phone: string
  market_price: number
  max_buy: number
  min_buy: number
  mp3: string
  name: string
  no: string
  notice: string
  open_meal: number
  order_limit: number
  order_limit_config: string
  orderno: number
  pay_notice_mark: string
  pid: number
  plugin_id: number
  plugin_product_code: string
  plugin_scenic_id: number
  poster_background: string
  poster_type: number
  price: number
  province_id: number
  qianggou_related_key: string
  qq_video_id: string
  sale_count: number
  sale_model: number
  score: number
  second_seller_price: number
  sell_begin: string
  sell_end: string
  seller_brokerage: number
  seller_price: number
  set_top_time: string
  short_name: string
  show_citys: string
  sid: number
  site_audit_message: string
  site_audit_status: number
  slogan: string
  sms_content: string
  sms_mark: string
  sms_service_phone: string
  sms_template_id: number
  sms_user_group_id: number
  store: number
  supplier_id: number
  supplier_price: number
  type: number
  update_date: string
  update_ip: string
  update_user: string
  uuid: string
  valid_date_days: string
  valid_date_limit_end: string
  valid_date_type: number
  verification_limit: number
  view_count: number
  warning_store: string
  serviceLabels: { url: string; name: string; image: string }[]
  salesVolume: number
  isGoodsDayInfo?: number
  buy_num_min?: number
  buy_num_max?: number
  main_img: string
}

export interface MainLabelType {
  // id: number;
  name: string // 标题
  des: string // 下方描述
  isMark: boolean // 是否重点显示
  markColor?: string // 重点显示颜色值 hex  #FFA000
  url: string
  // urlType: number; // 0 普通页面  1 tab页面
}

export interface IndexDiyType {
  // module: IndexDiyModule<IndexDiyModuleLimit[] | {firstGood:IndexDiyModuleLimit, goods: IndexDiyModuleLimit[]}>[]; // 首页模块组成的数组
  icon_row_num: any
  head_type: any
  regionalCategoryModel: any
  regionFlag?: boolean
  module: IndexDiyModule[] // 首页模块组成的数组
  guessLike: 0 | 1 | -1 // 0 列表方式  1 瀑布流方式
  guessLikeName: string
  menus: {
    img: string
    url: string
    name: string
  }[]
  labels: MainLabelType[]
  video?: string
  banner_style?: 0 | 1 //1为开启视频
  banner_video?: ''
  banner_muted?: 0 | 1
  banner_video_full_screen?: 0 | 1
}

export interface IndexDiyModule<T = any> {
  type: string  // 类型  'limit1' 'limit2' 'most' 'other' 'popular'
  name: string // 模块标题
  moreUrl: string // 模块点击更多
  isUser?: boolean
  data?: T
  qq_video_id?: string
}

export interface IndexDiyModuleLimit {
  id: number
  status: number // 抢购状态 0 售罄  1 正常
  beginTime: number // 开始抢购时间戳
  endTime: number // 结束抢购时间戳
  img: string // 抢购图片绝对地址
  sub_title: string // 抢购图片绝对地址
  name: string // 产品标题
  url: string // 抢购url
  progress: number // 抢购进度条 百分比数字（不含百分号）
  price: number // 抢购价格
  market_price: number // 市场划线价
  nowTime: number // 服务器当前时间
}

export interface IndexDiyModuleGood {
  id?: number
  name: string
  img?: string
  price?: number
  url: string
  poster?: string
  out_id?: number
  std_id?: number
  movie_type?: number
  hall_type?: string
  grade?: number
}

export interface IndexDiyModuleCommon {
  cover: {
    img: string
    url: string
  }
  goods: IndexDiyModuleGood[]
}

export interface ScenicIndexPageData {
  rowNum: any
  advertisementFuns: any
  headBg: string
  pageTitle: string
  menus: {
    img: string
    url: string
    name: string
  }[]
  adImg: {
    img: string
    url: string
    // url_type: 0 | 1;
  }
  recommondGoods: IndexDiyModuleGood[]
}

export interface TouristLineIndexPageData {
  headBg: string
  pageTitle: string
  menus: {
    img: string
    url: string
    name: string
  }[]
  hot_name: string
  hots: IndexDiyModuleGood[]
}

/* 休养专区 */
export interface RelaxPageData {
  custom_backGround: {
    title: string
    img: string
    uuid?: string
  }
  custom_label: {
    icon: string
    url: string
    name: string
  }[]
  hot_mudidi: IndexDiyModuleGood[]
  hot_name?: string
  module: IndexDiyModule[]
  guessLike: 0 | 1 | -1 // 0 列表方式  1 瀑布流方式
  guessLikeName?: string
  data_num: 0 | 1 // 1代表无限，
  dataLikeCustom?: string
  sourceCustom?: string
}

/* 日历格式 */
export interface CalendarInfo {
  date: string
  price: number
  seller_price: number
  stock_balance: number
  supplier_price: number
}

// category 分类num  限时抢购 1  景点门票 2  酒店 3  旅游线路 4  普通商品 5

/* 分享信息 */
export interface ShareInfo {
  bindSellerId: number
  platformName: string
  sellerId: number
  serviceTel: string
  sid: number
  title: string
}

/* 物流接口 */
export interface LogisticsType {
  carrier_name: string
  courier: string
  courierPhone: string
  deliveryStatusDescription: string
  expSite: string
  issign: string
  logo: string
  number: string
  phone: string
  takeTime: string
  trackinfo: LogisticsItemType[]
  tracking_number: string
  type: string
  updateTime: string
}

export interface LogisticsItemType {
  Date: string
  StatusDescription: string
}

export interface CreateAppointment {
  pay_type: number
  total_fee: number
  uuid: string
  packageParams?: PayParam
}

export interface ScreenItem {
  key: string
  title: string
  data: {
    name: string
    typeid: string
    value?: string
  }[]
}

export interface CityLabelsItem {
  id: number
  img: string
  label_name: string
  summary: string
  link: string
  link_type: number
  is_pure_graph: number
}

export interface NewsInfo {
  img?: string
  read_user_ids?: string
  add_date?: string
  keywords?: string
  pid?: number
  source?: string
  update_ip?: string
  title: string
  uuid: string
  content: string
  sid?: number
  pub_date?: string
  update_user?: string
  wid?: string
  cat_id?: string
  activity_id?: string
  qq_video_id?: string
  share_img?: string
  id?: number
  summary?: string
  sub_title?: string
  like_count?: string
  special_id?: string
  author: string
  type_id?: number
  update_date?: string
  is_show?: number
  tags?: string
  share_count?: number
  add_ip?: string
  link_other?: string
  is_recommend?: number
  add_user?: string
  view_count: number
}

export interface NewsRecommendItem {
  img: string
  price: number
  name: string
  goods_id: number
  market_price: number
  url: string
}

export interface SupportInfoType {
  support_phone: string
  support_title: string
}

export interface BigGoodsBoxType {
  id: number
  img: string
  categoryName: string
  city: string
  name: string
  price: number
  marketPrice: number
  salesVolume: number
  uuid: string
  url: string
  serviceLabels: { url: string; name: string }[]
  percent?: number // 抢购类目字段 抢购进度
  beginTime?: number // 抢购类目字段 开始抢购时间戳
  endTime?: number // 抢购类目字段 结束抢购时间戳
  status: number // 0 售罄， 1 正常
}

export interface ReserveGoods {
  name: string
  uuid: string
}

export interface H5Config {
  debug?: boolean
  appId: string
  timestamp: number
  nonceStr: string
  signature: string
  jsApiList: any
}
